import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Util, * as $Util from '@alicloud/tea-util';
import OpenApiUtil from '@alicloud/openapi-util';
import * as $tea from '@alicloud/tea-typescript';


export default class Client { 
	 /**
	   * 使用AK&SK初始化账号Client
	   * @param accessKeyId
	   * @param accessKeySecret
	   * @return Client
	   * @throws Exception
	   */
	  
	   static createClient(accessKeyId: string, accessKeySecret: string): OpenApi {
	       let config = new $OpenApi.Config({
	         // 必填，您的 AccessKey ID
	         accessKeyId: 'LTAI5tNK18LWUh2afTpJarWc',
	         // 必填，您的 AccessKey Secret
	         accessKeySecret: 'xTlhdvmwRWI8lxArxuuAYrKyUOUSu1',
	       });
	       // Endpoint 请参考 https://api.aliyun.com/product/ocr-api
	       config.endpoint = `ocr-api.cn-hangzhou.aliyuncs.com`;
	       return new OpenApi(config);
	    }
		
		
		static createApiInfo(): $OpenApi.Params {
			let params = new $OpenApi.Params({
			  // 接口名称
			  action: "RecognizeIdcard",
			  // 接口版本
			  version: "2021-07-07",
			  // 接口协议
			  protocol: "HTTPS",
			  // 接口 HTTP 方法
			  method: "POST",
			  authType: "AK",
			  style: "V3",
			  // 接口 PATH
			  pathname: `/`,
			  // 接口请求体内容格式
			  reqBodyType: "json",
			  // 接口响应体内容格式
			  bodyType: "json",
			});
			return params;
		}
		
		static async main(args: any): Promise<any> {
		    // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
		    // 工程代码泄露可能会导致 AccessKey 泄露，并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用，仅供参考，建议使用更安全的 STS 方式，更多鉴权访问方式请参见：https://help.aliyun.com/document_detail/378664.html
		    let client = Client.createClient('LTAI5tNK18LWUh2afTpJarWc', 'xTlhdvmwRWI8lxArxuuAYrKyUOUSu1');
		    let params = Client.createApiInfo();
		    // 需要安装额外的依赖库，直接点击下载完整工程即可看到所有依赖。
			let queries : {[key: string ]: any} = { };
			queries["Url"] = args
	
			
			let runtime = new $Util.RuntimeOptions({ });
			let request = new $OpenApi.OpenApiRequest({
				query: OpenApiUtil.query(queries),
			});
			return await client.callApi(params, request, runtime)  
		    // runtime options
		   
		    // // 复制代码运行请自行打印 API 的返回值
		    // // 返回值为 Map 类型，可从 Map 中获得三类数据：响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。
		    // ;
		}
		
}


